Swoole\Coroutine\Client
提供了TCP
和UDP
传输协议Socket
客户端的封装代码,使用时仅需new Swoole\Coroutine\Client
即可。
Swoole\Coroutine\Client
底层实现协程调度,业务层无需感知- 使用方法和
Swoole\Client
同步模式方法完全一致 connect
超时设置同时作用于Connect
和Recv
、Send
超时- 除了正常的调用外,
Swoole\Coroutine\Client
还支持并行请求。 - 使用方法和
Swoole\Client
一致的此处不再列出,请参考 Swoole\Client,对于使用有区别的函数,此处单独说明
$client = new Swoole\Coroutine\Client(SWOOLE_SOCK_TCP);
if (!$client->connect('127.0.0.1', 9501, 0.5))
{
exit("connect failed. Error: {$client->errCode}\n");
}
$client->send("hello world\n");
echo $client->recv();
$client->close();
协程客户端也支持长度和EOF
协议处理,设置方法与 Swoole\Client 完全一致。
$client = new Swoole\Coroutine\Client(SWOOLE_SOCK_TCP);
$client->set(array(
'open_length_check' => 1,
'package_length_type' => 'N',
'package_length_offset' => 0, //第N个字节是包长度的值
'package_body_offset' => 4, //第几个字节开始计算长度
'package_max_length' => 2000000, //协议最大长度
));